#ifndef VCHARTWIDGET_H
#define VCHARTWIDGET_H

#include <QWidget>
#include <QChart>
#include <QChartView>
#include <QLineSeries>
#include <QScatterSeries>
#include <QVBoxLayout>
#include <QValueAxis>
#include <QtMath>
#include <QGraphicsTextItem>
#include "vcomstruct.h"
#include <QGraphicsRectItem>
#include <QGraphicsTextItem>
#include <QMouseEvent>

QT_CHARTS_USE_NAMESPACE   // 使用 Qt Charts 命名空间

class vChartWidget : public QWidget
{
    Q_OBJECT
public:
    explicit vChartWidget(QWidget *parent = nullptr);
    ~vChartWidget(void);

    // 创建折线数据序列
    QLineSeries *vLineOriginal = nullptr;
    QLineSeries *vLineNew = nullptr;
    // 创建实际图表
    QChart *vCShowqchart = nullptr;
    // 创建 QChartView 小部件，用于显示图表
    QChartView *vChartView = nullptr;

    /* 设置图标轴的范围 */
    QValueAxis *vPressAxisX = nullptr;         // X轴
    QValueAxis *vPressAxisY = nullptr;         // Y轴

    /* 添加线条 */
    QLineSeries *originSeries = nullptr;
    QLineSeries *originSeries1 = nullptr;

    /* 添加散点 */
    QScatterSeries *scatterSeries = nullptr;
    QScatterSeries *scatterSeries1 = nullptr;


    /*----------------------------计算用参数----------------------------------*/
    /* 总井深 */
    float AllDepth;



    /*----------------------------绘制点相关----------------------------------*/

    /* 以角度与距离绘制相对位置点 */
    QPointF calculateNewPoint(const QPointF &center, double angle, double distance);
    /* 以点为中心绘制梯形 */
    QPointF rotatePoint(const QPointF &point, const QPointF &center, double angle);

    /* 计算并绘制新井线形 */
    void vCulDarwNewLine(QList<RelatWellData> pdata);

private:
    void addCustomLabel(QChart *chart, qreal x, qreal y, const QString &text)
    {


        QGraphicsTextItem *label = new QGraphicsTextItem(text);
        QPointF point = chart->mapToPosition(QPointF(x, y));
        label->setPos(point);
        label->setDefaultTextColor(Qt::black);
        chart->scene()->addItem(label);
//        // 刷新图表
//        chart->update();
//        chart->scene()->invalidate();
//        chart->scene()->removeItem(label);
//        delete label; // 释放内存
    }


signals:

};

#endif // VCHARTWIDGET_H
